problem solving methods in artificial intelligence